<?php
	class detalleService
	{
		private $_productoService;
		private $_medidaService;
		public function detalleService()
		{
			$this->_productoService = new productoService();
			$this->_medidaService = new medidaService();
		}
		public function registrarDetalles($rows,$venta)
		{
			foreach ($rows as $row)
			{
				$detalle = new DetalleVenta();
				$detalle->venta = $venta;
				$detalle->cantidad = $row['Cantidad'];
				$detalle->descuento = $row['descuento_p'];
				$detalle->medida =$row['id_medida'];
				$detalle->precio = $row['Precio'];
				$detalle->producto = $row['id_producto'];
				if ($detalle->save())
				{
					$update_valor = $detalle->cantidad;
					if ($detalle->medida != $this->_productoService->getMedidaID($detalle->producto)) {
						
						$update_valor = $detalle->cantidad / $this->_medidaService->getFactorConversion($this->_productoService->getMedidaID($detalle->producto),$detalle->medida);
					}
					$this->_productoService->updateInventario($detalle->producto, $update_valor);
				} 
				else {
					var_dump($detalle->getErrors());
				}
				
			}
		}
		public function registrarDetalleCompra($rows, $compra)
		{
			$transaction = DetalleCompra::model()->dbConnection->beginTransaction();
		
			foreach ($rows as $row)
			{
				$detalle = new DetalleCompra();
				$detalle->compra = $compra;
				$detalle->cantidad = $row['Cantidad'];
				$detalle->precio_unitario = $row['Precio'];
				$detalle->Producto = $row['Id'];
				$detalle->cambio = $row['Cambio'];
				if ($detalle->save())
				{
					($this->_productoService->updatePrice($detalle->Producto, $detalle->precio_unitario, $detalle->cantidad));
				}
				else{
					var_dump($detalle->getErrors());
				}
				//$transaction->rollBack();
			}
			try {
				$transaction->commit();
				return True;
				
			} catch (Exception $e) {
				$transaction->rollBack();
				return false;
			}
		}
		public function deleteDetalleCompra($id_compra){
			
			DetalleCompra::model()->deleteAll('compra=:param',array(':param'=>$id_compra));
		}
	}
?>